package marking.liu.service;

import marking.liu.pojo.domain.GainerDataDomain;
import marking.liu.pojo.domain.InnerMarketDomain;
import marking.liu.pojo.domain.SectorIndicesDomain;
import marking.liu.pojo.domain.Stock4MinuteDomain;
import marking.liu.pojo.vo.PageResult;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface StockService {

    /**
     * 获取国内A股信息
     * @return
     */
    List<InnerMarketDomain> getInnerMarketInfo();

    /**
     * 获取板块指数信息
     * @return
     */
    List<SectorIndicesDomain> getSectorIndicesInfo();

    /**
     * 分页查询最新股票交易时间点下沪深的行情数据
     * @param page
     * @param pageSize
     * @return
     */
    PageResult getStockPageInfo(Integer page, Integer pageSize);

    /**
     * 获取涨幅榜数据
     * @return
     */
    List<GainerDataDomain> getIncreaseInfo(Integer page, Integer pageSize);

    /**
     * 获取涨停跌停表信息
     * @return
     */
    Map<String, List> getStockUpdownCount();

    /**
     * 导出涨停跌停excel表
     * @param response
     * @param page
     * @param pageSize
     */
    void exportExcel(HttpServletResponse response, Integer page, Integer pageSize) throws IOException;

    /**
     * 统计国内A股大盘T日和T-1日成交量对比功能（成交量为沪市和深市成交量之和）
     * @return
     */
    Map stockTradeVol4InnerMarket();

    /**
     * 查询单个个股的分时行情数据，也就是统计指定股票T日每分钟的交易数据；
     *   如果当前日期不在有效时间内，则以最近的一个股票交易时间作为查询时间点
     * @param code
     * @return
     */
    List<Stock4MinuteDomain> stockScreenTimeSharing(String code);
}
